Computers are coupled together in a network to provide digital communications. Computer networks are critical for carrying digital data used for Internet, IP telephony, video teleconferencing, e-commerce, file transfers, e-mail, databases, etc. And as these networks become bigger, more powerful, and more versatile, the networked computers can be programmed to perform more complex tasks. Accordingly, software applications are likewise becoming quite sophisticated. One problem arises when software has to be distributed across the network. For instance, new software is routinely being installed to give users new functionalities; software upgrades are installed for improved efficiency; and network software is installed to help monitor and administer the performance of the network.
In the past, a network administrator would have to physically visit each of the individual computers and manually install the software onto that particular station. This is a time consuming task. Furthermore, it is inefficient because of the associated downtime as software is being installed. In addition, there is much overhead expended in administering, tracking, and maintaining an accurate and updated log of the software state for each of the computers across the entire network. There can also be problems encountered with respect to software compatibility, troubleshooting, and licensing issues.
One prior art method to overcoming some of these problems involves executing software remotely over the network. FIG. 1 shows a prior art method for the remote execution of software. A device manager 101 resides on a server operated by the network administrator. It communicates and issues calls to a managed device 102 over the network. Initially, the device manager 101 creates a service on the managed device 102, step 103. The service is created on the managed device, which also registers itself, step 107. This is accomplished through a remote call. Next, the device manager 101 starts the service in step 104. A remote call is made to start the service on the managed device 102. The service calls the executable on the device manager's file system, step 108. In response, the executable called on the device manager 101 launches on the managed device 102 in step 105. The executable starts, runs, and then finishes on the managed device 102 in step 109. Lastly, in step 106, the device manager 101 stops the service and deletes it on the managed device 102. This causes the managed device 102 to stop, unregister, and delete the service in step 110.
Although this prior art solution solves the need to manually load software, it nevertheless suffers some serious drawbacks. Namely, this prior art method accomplished remote software management by a multi-step, complex creation of services, which executed an install executable on the management server. As such, this previous approach required extensive error checking and redundant network calls due to its complexity and number of required successful network connection calls. Furthermore, existing “CreateProcess” APIs are limited to the local systems, and cannot be executed on remote target systems over a network. Moreover, the prior art tended to be restricted to special cases or had to be customized to meet certain specific installation needs.
Therefore, there exists a need in the prior art for an improved, universal remote execution of software process. The present invention provides a unique, novel solution to these and other problems.